package basic;

import java.io.Serializable;

public class PageInfo implements Serializable {

	private static final long serialVersionUID = 1L;

	// 默认第一页开始
	private Integer pageIndex = 1;
	// 默认分页记录数
	private Integer pageSize = 20;
	// 总记录数
	private Integer pageRecord = 0;
	// 总页数
	private Integer pageGross = 1;
	// 上一页
	private Integer pagePrevious = 1;
	// 下一页
	private Integer pageNext = 1;
	// 默认隐藏页码数
	private Integer pageHide = 4;
	// 显示页码头
	private Integer pageTop = 1;
	// 显示页码尾
	private Integer pageEnd = 1;

	public PageInfo() {

	}

	public PageInfo(Integer pageIndex, Integer pageSize) {
		this.pageIndex = pageIndex;
		this.pageSize = pageSize;
	}

	public void allocation() {
		setPageGross(((getPageRecord() == 0) ? 1 : (getPageRecord() % getPageSize() == 0) ? (getPageRecord() / getPageSize()) : (getPageRecord() / getPageSize() + 1)));
		setPageIndex((getPageIndex() > getPageGross()) ? 1 : getPageIndex());
		setPageNext(((getPageIndex() + 1) < getPageGross()) ? (getPageIndex() + 1) : getPageGross());
		setPagePrevious(((getPageIndex() - 1) > 1) ? (getPageIndex() - 1) : 1);
		setPageTop(getPageIndex() - getPageHide() > 0 ? getPageIndex() - getPageHide() : 1);
		setPageEnd(getPageIndex() + getPageHide() < getPageGross() ? getPageIndex() + getPageHide() : getPageGross());
	}

	public Integer getPageIndex() {
		return pageIndex;
	}

	public void setPageIndex(Integer pageIndex) {
		this.pageIndex = pageIndex;
	}

	public Integer getPageSize() {
		return pageSize;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}

	public Integer getPageRecord() {
		return pageRecord;
	}

	public void setPageRecord(Integer pageRecord) {
		this.pageRecord = pageRecord;
	}

	public Integer getPageGross() {
		return pageGross;
	}

	public void setPageGross(Integer pageGross) {
		this.pageGross = pageGross;
	}

	public Integer getPagePrevious() {
		return pagePrevious;
	}

	public void setPagePrevious(Integer pagePrevious) {
		this.pagePrevious = pagePrevious;
	}

	public Integer getPageNext() {
		return pageNext;
	}

	public void setPageNext(Integer pageNext) {
		this.pageNext = pageNext;
	}

	public Integer getPageHide() {
		return pageHide;
	}

	public void setPageHide(Integer pageHide) {
		this.pageHide = pageHide;
	}

	public Integer getPageTop() {
		return pageTop;
	}

	public void setPageTop(Integer pageTop) {
		this.pageTop = pageTop;
	}

	public Integer getPageEnd() {
		return pageEnd;
	}

	public void setPageEnd(Integer pageEnd) {
		this.pageEnd = pageEnd;
	}

	public String toString() {
		StringBuffer sb = new StringBuffer();
		sb.append("总记录数[ pageRecord ] : " + pageRecord + System.lineSeparator());
		sb.append("总页数[ pageGross ] : " + pageGross + System.lineSeparator());
		sb.append("当前页[ pageIndex ] : " + pageIndex + System.lineSeparator());
		sb.append("每页记录数[ pageSize ] : " + pageSize + System.lineSeparator());
		sb.append("上一页[ pagePrevious ] : " + pagePrevious + System.lineSeparator());
		sb.append("下一页[ pageNext ] : " + pageNext + System.lineSeparator());
		return sb.toString();
	}
	

}